
D52 8052 Disassembler Version 3.3.6 (includes D48 and DZ80)
=========================================================

The latest release version of D52 will always be available on 8052.com (or as
long as Craig Steiner graciously allows me space on 8052.com--thanks Craig!).

The disassemblers (with Linux and Windows binaries) are also available on my
web site: http://home.pacbell.net/theposts.

New Features:
-------------
Version 3.3 now includes a code analysis option for the 8052 disassembler.
The -t command line option causes D52 to trace and analyze the code in the
file to be disassembled to determine which parts of the file are actually
executable code, and which parts are data, such as ascii text, 8-bit binary
data, 16-bit binary data or pointers.

The results of the analysis are written to a control file which is then used in
the disassembly process. Use of the -t option will overwrite any existing
control file for the program to be disassembled, and so should only be used on
the first disassembly. You may modify the control file with any text editor to
correct any analysis errors or to add new directives for subsequent disassemblies
of a file.

The code analysis option is available only in D52; it may be added to D48 and
DZ80 at some future time. This feature should be considered beta test, although
D52 as a whole is a mature program.

Version 3.3 of DZ80 now has a command line option (-c) to disassemble CP/M
.com files, in addition to hex and binary files.

Version 3.3.1 of D52 corrects a bug regarding the Keil flag.

Version 3.3.2 allows inline comments after address and word data.
  Corrects a bug that would force word data following a header comment to be
  interpreted as byte data.

Version 3.3.3 corrects a bug that would allow more than one equate statement to
  be generated for name symbols with the same value. Inline comments now
  allowed for byte (8-bit) data. Corrected endian problem with Z80 disassembler.
  Changed format of 'd' directive.

Version 3.3.4 adds a new command line option and a new control file directive.
  The -u option causes mnemonics, labels, symbols, etc to be output in upper
  case for cross assemblers that may require upper case code. Strings,
  literal data, and comments are not affected. The P directive is similar to
  the header comment directive (#) except that the user string will be output
  as code, rather than as a comment. May be useful for inserting include
  statements or macro definitions into the output file. A preliminary trace
  option has been added to the Z80 disassembler (DZ80), but is still
  experimental--use it with caution. V3.3.4 also includes some bug fixes.

Version 3.3.5 fixes bug with patch directive. Code cleanup and minor bug fixes.
  Will no longer abort if input file exceeds 64KB, but code beyond 64K will be
  ignored.

Version 3.3.6 now allows you to specify the file extension of the file to be
  disassembled (eg: d52 -d testfile.hex). If you specify the extention, the
  -b (binary), -h (Intel hex), and -c (CP/M .com file if using DZ80) flags
  are not required.
  Fixed bug that caused assembler pseudo opcodes to not be output in upper
  case if the -u option was given on the command line, but no control file
  existed for the file to be disassembled.
  Suppress generation of an equ statement for an address if a label for
  that address had already been output. (This bug would cause some cross-
  assemblers to output an error even though the value of the equ matched
  the address of the label.)
  The keil A51 option (-k) should be used only if you intend to re-assemble
  the output file using the older DOS version of A51.

The Future:
-----------

Dis52, a GUI front end for D52, D48 and DZ80, is currently under development,
and a preview version for Linux (or other Unix-like OS) is now available. (Due
to flaws in the design of Windows, Dis52 is not yet available for Windows. If
and when I can find a work-around for the deficiencies of Windows, I will
release a Windows version of Dis52.)

Dis52 requires the SDL (Simple DirectMedia Layer) library. SDL can be downloaded
from http://www.libsdl.org.


Jeff Post
thePosts <AT> pacbell <DOT> net
January, 2004

